Линейная история через быстрое переключение возможна только тогда, когда история ветвления представляет собой прямую линию потомков. В тот момент, когда базовая ветка и ветка функции расходятся, простое «перемещение указателя» при быстром слиянии становится математически невозможным.
1. Ощутимое различие
Слияния с быстрым перемещением не отражаются в истории проекта. Это означает, что уникальное существование ветки фактически стирается при интеграции. В противоположность этому, трёхсторонние слияния сохраняют повествование о параллельной работе.
2. Принцип хранителя истории
Постоянная ветка мастер выступает в роли хранителя истории для всего нашего проекта. Она может записывать только то, что мы позволяем ей видеть; когда пути разделяются, мы вынуждены создать новое «событие» — слияние слияние— чтобы соединить пробел и согласовать две различные реальности, которые развивались одновременно.
3. Обнаружение расхождения
Используя git log --oneline, разработчики могут визуализировать, где пути расходятся. Если ветка 'master' продвинулась дальше после того, как вы создали свою ветку, Git не сможет переместить указатель вперёд без потери новых изменений в мастере.